﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Interfaces;
using Presentador;
using ReporteTrafico.App_Data;

namespace ReporteTrafico
{
    public partial class ModificarDatosUsuario : Page, IModificarUsuario
    {
        //<summary>
        // Objeto del tipo PresentadorUsuario
        //</summary> 
        PresentadorModificarUsuario modificarUsuario;
        public string loginUsuario;


        //<summary>
        // Constructor
        //</summary> 
        public ModificarDatosUsuario()
        {
            modificarUsuario = new PresentadorModificarUsuario(this);
        }


        // ESTO ES PARA QUE CADA VEZ QUE SE CARGE LA PÁGINA SE VALIDE SI HAY UN USUARIO LOGUEADO O NO...
        // REVISAR CORREO...
        protected void Page_Load(object sender, EventArgs e)
        {
            //Response.Cache.SetCacheability(HttpCacheability.NoCache);
            object usuarioLogueado = Session[Recursos.SesionUsuario];
            object idUsuarioLogueado = Session[Recursos.SesionIdUsuario];

            if (usuarioLogueado != null)
            {
                loginUsuario = Convert.ToString(usuarioLogueado);

                infoUsuario = Recursos.Saludo + loginUsuario.ToUpper() + Recursos.puntuacion;

                infoIdUsuario = Convert.ToString(idUsuarioLogueado);

                if (!IsPostBack)
                {
                    modificarUsuario.ConsultaUsuario(loginUsuario);
                }
            }
        }

        #region Encapsulamiento de Componentes
        public String NombreUsuario
        {
            get { return TextBoxNombre.Text; }
            set { TextBoxNombre.Text = value; }
        }

        public String ApellidoUsuario
        {
            get { return TextBoxApellido.Text; }
            set { TextBoxApellido.Text = value; }
        }

        public String GeneroUsuario
        {
            get { return RadioButtonList.Text; }
            set { RadioButtonList.Text = value; }
        }

        public String CelularUsuario
        {
            get { return TextBoxCelular.Text; }
            set { TextBoxCelular.Text = value; }
        }

        public String Usuario
        {
            get { return TextBoxUsuario.Text; }
            set { TextBoxUsuario.Text = value; }
        }

        public String Contraseña
        {
            get { return TextBoxContraseña.Text; }
            set { TextBoxContraseña.Text = value; }
        }

        public String infoUsuario
        {
            get { return LabelUsuario.Text; }
            set { LabelUsuario.Text = value; }
        }

        public String infoIdUsuario
        {
            get { return LabelIdUsuario.Text; }
            set { LabelIdUsuario.Text = value; }
        }
        #endregion

        //<summary>
        // Método del botón que inicia el evento de Modificar Datos de Usuario
        //</summary> 
        protected void Button_ModificarDatos(object sender, EventArgs e)
        {
            bool existenciaCelular = modificarUsuario.VerificaActualizacionCelular(loginUsuario);
            bool existenciaUsuario = modificarUsuario.VerificaActualizacionUsuario(loginUsuario);

            if ((existenciaCelular == false) && (existenciaUsuario == false))
            {
                modificarUsuario.ModificarUsuario(loginUsuario);
                Response.Redirect(Recursos.Login);
            }
        }

    }
}
